#include <power.h>
#include <lcd.h>
#include <STC8G_H_GPIO.h>
#include <STC8G_H_ADC.h>


void adc_channel_init(void) {
    GPIO_InitTypeDef initTypeDef;
    initTypeDef.Mode = GPIO_HighZ;
    initTypeDef.Pin = GPIO_Pin_7;
    GPIO_Inilize(GPIO_P1, &initTypeDef); // 设置P1.7为高阻输入，用于测量ADC信号
}

/**
 * 初始化ADC
 * 使用P17, ADC通道7
 */
void POWER_Init(void) {
    // 设置ADC引脚模式；
    adc_channel_init();

    // 设置ADC
    ADC_InitTypeDef adc_initTypeDef;
    adc_initTypeDef.ADC_SMPduty = 31;
    adc_initTypeDef.ADC_CsHold = 1;
    adc_initTypeDef.ADC_CsSetup = 0;
    adc_initTypeDef.ADC_AdjResult = ADC_RIGHT_JUSTIFIED;
    adc_initTypeDef.ADC_Speed = ADC_SPEED_2X16T;

    ADC_Inilize(&adc_initTypeDef); // 初始化ADC

    ADC_PowerControl(ENABLE);  // 使能ADC
}

/**
 * 定时获取最新值，并且刷新
 */
void power_change_task(void) {
    // 获取通道7的结果
    u16 powerValue = Get_ADCResult(7);
    showPower(powerValue);

}